package com.fr.lintcode;

import org.junit.Test;

/**
*作者：furong
*日期：2016年12月28日
*时间：下午6:21:37
*/
public class Q159 {
    /**
     * @param nums: a rotated sorted array
     * @return: the minimum number in the array
     */
    public int findMin(int[] nums) {
        if (nums == null || nums.length == 0) {
            return -1;
        }
        int left = 0;
        int right = nums.length - 1;
        int point = -1;
        while (left <= right) {
            point = (left + right) / 2;
            if (nums[left] > nums[right]) {// 旋转排序
                if (nums[point] >= nums[left]) {
                    left = point + 1;
                } else {
                    right = point;
                }
            } else {// 正确的排序
                return nums[left];
            }

        }
        return nums[point];
    }

    @Test
    public void testA() {
        int[] nums = { 4, 5, 6, 7 };
        System.out.println(findMin(nums));
    }

}
